KFbxMesh Class Reference

#include <kfbxmesh.h>
Inheritance diagram for KFbxMesh:
Inheritance graph
[legend]

List of all members.


Detailed Description

A mesh is a geometry made of polygons.

Functions to initialize, set and access vertices are provided in the KFbxGeometry base class. A vertex is referred as a control point in the KFbxGeometry base class. Though a control point is made of four elements, meshes only use the first three to store the XYZ coordinates.

Since the mesh-related terminology of the FBX SDK differs a little from the standard, here are some definitions:

Definition at line 70 of file kfbxmesh.h.


Utility functions

enum   ESplitObject { eBY_NORMAL }
  Object of interest when splitting. More...
void  Reset ()
  Reset the mesh to default values.
void  ComputeVertexNormals (bool pCW=false)
  Compute the vertex normals on the mesh.
bool  CheckIfVertexNormalsCCW ()
  Compares the normals calculated by doing cross-products between the polygon vertex and by the ones stored in the normal array.
bool  CheckSamePointTwice ()
  Verify if the mesh has polygons that are defined on the same point more than once.
int  RemoveBadPolygons ()
  Remove bad polygons from a mesh.

Polygon Management

void  BeginPolygon (int pMaterial=-1, int pTexture=-1, int pGroup=-1, bool pLegacy=true)
  Begin writing a polygon.
void  BeginPolygonExt (int pMaterial, int *pTextures)
  Begin writing a polygon.
void  AddPolygon (int pIndex, int pTextureUVIndex=-1)
  Add an index to a control point (i.e.
void  EndPolygon ()
  End writing a polygon.
int  GetPolygonCount () const
  Get the polygon count of this mesh.
int  GetPolygonIndex (int pPolygonIndex) const
  Get the beginning index of a polygon.
int  GetPolygonSize (int pPolygonIndex) const
  Get the number of polygon vertices in a polygon.
int  GetPolygonGroup (int pPolygonIndex) const
  Get the group index assigned to a polygon.
void  SetPolygonGroup (int pPolygonIndex, int pGroup) const
  Set the group index assigned to a polygon.
int  GetPolygonVertex (int pPolygonIndex, int pPositionInPolygon) const
  Get a polygon vertex (i.e.
void  GetPolygonVertexNormal (int pPolyIndex, int pVertexIndex, KFbxVector4 &pNormal) const
  Get the normal associated with a polygon/vertex.
int *  GetPolygonVertices () const
  Get the array of polygon vertices (i.e.
int  GetPolygonVertexCount () const
  Gets the number of polygon vertices in the mesh.
int  GetPolygonVertexIndex (int pPolygonIndex) const
  Gets the start index into the array returned by GetPolygonVertices() for the given polygon.
int  RemovePolygon (int pPolygonIndex)
  Remove this polygon from the mesh.

Texture UV Utility Functions.

The functions you will find in this section are utility functions to handle UV coordinates quickly. Internally they refer to KFbxLayer and KFbxLayerElementUV methods to do the work. These functions are only working on Layer 0. Use the KFbxLayer methods directly to access other layers.

void  InitTextureUV (int pCount, KFbxLayerElement::ELayerElementType pTypeIdentifier=KFbxLayerElement::eDIFFUSE_TEXTURES)
  Init texture UV coordinates.
void  AddTextureUV (KFbxVector2 pUV, KFbxLayerElement::ELayerElementType pTypeIdentifier=KFbxLayerElement::eDIFFUSE_TEXTURES)
  Add texture UV coordinates.
int  GetTextureUVCount (KFbxLayerElement::ELayerElementType pTypeIdentifier=KFbxLayerElement::eDIFFUSE_TEXTURES)
  Get the number of texture UV coordinates.
int  GetUVLayerCount ()
  Get the number of layer containing at least one channel UVMap.
KArrayTemplate
< KFbxLayerElement::ELayerElementType
GetAllChannelUV (int pLayer)
  Get an array of UV of the different UV set for a layer.

Material, Texture and UV Indices Utility Functions.

The functions you will find in this section are utility functions to handle Material, Texture and UV indices. Internally they refer to KFbxLayer and KFbxLayerElement methods to do the work. These functions are only working on Layer 0. Use the KFbxLayer methods directly to access other layers.

void  InitMaterialIndices (KFbxLayerElement::EMappingMode pMappingMode)
  Initialize material indices.
void  InitTextureIndices (KFbxLayerElement::EMappingMode pMappingMode, KFbxLayerElement::ELayerElementType pTextureType)
  Initialize texture indices.
void  InitTextureUVIndices (KFbxLayerElement::EMappingMode pMappingMode, KFbxLayerElement::ELayerElementType pTypeIdentifier=KFbxLayerElement::eDIFFUSE_TEXTURES)
  Initialize texture UV indices.
int  GetTextureUVIndex (int pPolygonIndex, int pPositionInPolygon, KFbxLayerElement::ELayerElementType pTypeIdentifier=KFbxLayerElement::eDIFFUSE_TEXTURES)
  Get a texture UV index associated with a polygon vertex (i.e.
void  SetTextureUVIndex (int pPolygonIndex, int pPositionInPolygon, int pIndex, KFbxLayerElement::ELayerElementType pTypeIdentifier)
  Set a texture UV index associated with a polygon vertex (i.e.

Point Splitting/Merging utility functions

void  SplitPoints (KFbxLayerElement::ELayerElementType pTypeIdentifier=KFbxLayerElement::eDIFFUSE_TEXTURES)
  Split points.
bool  BuildMergeList (KArrayTemplate< int > &pMergeList, ESplitObject pObject, bool pExport=false)
  Insert the new indexes of the object that have to be merged.
void  MergePointsForPolygonVerteNormals (KArrayTemplate< int > &pMergeList)
  Merge the points specified in the list.

Edge management functions

void  BuildMeshEdgeArray ()
  Automatically generate edge data for the mesh.
int  GetMeshEdgeCount () const
  Query the number of edges defined on this mesh.
int  GetMeshEdgeIndex (int pStartVertexIndex, int pEndVertexIndex, bool &pReversed)
  Get the index for the edge between the given vertices.
int  GetMeshEdgeIndexForPolygon (int pPolygon, int pPositionInPolygon)
  Get the index for the specific edge of pPolygon.
void  GetMeshEdgeVertices (int pEdgeIndex, int &pStartVertexIndex, int &pEndVertexIndex)
  Get the vertices for the given edge.
void  BeginGetMeshEdgeVertices ()
  Use this method before calling GetMeshEdgeVertices if making several calls to that method.
void  EndGetMeshEdgeVertices ()
  Use this method after calling GetMeshEdgeVertices if making several calls to that method.
void  SetMeshEdgeCount (int pEdgeCount)
  Presets the number edge data elements.
void  SetMeshEdge (int pEdgeIndex, int pValue)
  Sets element in edge array to specific value.
int  AddMeshEdgeIndex (int pStartVertexIndex, int pEndVertexIndex, bool pCheckForDuplicates)
  Add an edge with the given start/end points.
int  SetMeshEdgeIndex (int pEdgeIndex, int pStartVertexIndex, int pEndVertexIndex, bool pCheckForDuplicates)
  Set the index for the edge with the given start/end points.
void  BeginAddMeshEdgeIndex ()
  Call this before calling AddMeshEdgeIndex or SetMeshEdgeIndex to increase performance.
void  EndAddMeshEdgeIndex ()
  After calling AddMeshEdgeIndex or SetMeshEdgeIndex, EndAddMeshEdgeIndex should be called.
int  AddMeshEdgeIndexForPolygon (int pPolygonIndex, int pPositionInPolygon)
  Adds an edge for the specified polygon, and edge number within the polygon see SetMeshEdgeIndex for notes the the parameters.
bool  SetMeshEdgeIndex (int pEdgeIndex, int pPolygonIndex, int pPositionInPolygon)
  Sets the specified edge to the specified polygon's edge.
void  ComputeComponentMaps (KFbxComponentMap &pEdgeToPolyMap, KFbxComponentMap &pPolyToEdgeMap)
  Computer component maps.
bool  IsTriangleMesh () const
  Determines if the mesh is composed entirely of triangles.

Public Member Functions

virtual EAttributeType  GetAttributeType () const
  Return the type of node attribute.

Classes

class   KDuplicateVertex
  Internal structure used to keep the duplicate vertex information. More...
struct   KFbxComponentMap
  Internal structure used to keep the mapping information between edges and polygons. More...
class   KVertexNormalInfo
  Internal structure used to compute the normals on a mesh. More...

Member Enumeration Documentation

Object of interest when splitting.

Enumerator:
eBY_NORMAL  Each split point will have a different normal for polygon/vertex.

This is for normal mapping emulation.

Definition at line 361 of file kfbxmesh.h.


Member Function Documentation

virtual EAttributeType GetAttributeType (  )  const [virtual]

Return the type of node attribute.

Returns:
Return the type of this node attribute which is EAttributeType::eMESH.

Reimplemented from KFbxGeometry.

void BeginPolygon ( int  pMaterial = -1,
int  pTexture = -1,
int  pGroup = -1,
bool  pLegacy = true  
)

Begin writing a polygon.

Parameters:
pMaterial  Index of material to assign to this polygon if material mapping type is eBY_POLYGON. Otherwise it must be -1.
pTexture  Index of texture to assign to this polygon if texture mapping type is eBY_POLYGON. Otherwise it must be -1.
pGroup  Group index assigned to polygon.
pLegacy  When set to true, automatically create a LayerElement of type Texture; this was the old behavior.

void BeginPolygonExt ( int  pMaterial,
int *  pTextures  
)

Begin writing a polygon.

Parameters:
pMaterial  Index of material to assign to this polygon if material mapping type is eBY_POLYGON. Otherwise it must be -1.
pTextures  Array of index of texture to assign to this polygon if texture mapping type is eBY_POLYGON. Otherwise it must be an array of -1.

void AddPolygon ( int  pIndex,
int  pTextureUVIndex = -1  
)

Add an index to a control point (i.e.

a polygon vertex) to the current polygon.

Parameters:
pIndex  Index to a control point (i.e. a polygon vertex).
pTextureUVIndex  Index of texture UV coordinates to assign to this polygon if texture UV mapping type is eBY_POLYGON_VERTEX. Otherwise it must be -1.

void EndPolygon (  ) 

End writing a polygon.

int GetPolygonCount (  )  const [inline]

Get the polygon count of this mesh.

Returns:
Return the number of polygons in the mesh.

Definition at line 117 of file kfbxmesh.h.

int GetPolygonIndex ( int  pPolygonIndex  )  const [inline]

Get the beginning index of a polygon.

Parameters:
pPolygonIndex  Index of the polygon.
Returns:
Return the beginning index of the polygon in the mesh. If the polygon index is out of bounds, return -1.

Definition at line 124 of file kfbxmesh.h.

int GetPolygonSize ( int  pPolygonIndex  )  const [inline]

Get the number of polygon vertices in a polygon.

Parameters:
pPolygonIndex  Index of the polygon.
Returns:
The number of polygon vertices in the indexed polygon. If the polygon index is out of bounds, return -1.

Definition at line 134 of file kfbxmesh.h.

int GetPolygonGroup ( int  pPolygonIndex  )  const

Get the group index assigned to a polygon.

Parameters:
pPolygonIndex  Index of the polygon.
Returns:
Group index assigned to the polygon. If the polygon index is out of bounds, return -1.

void SetPolygonGroup ( int  pPolygonIndex,
int  pGroup  
) const [inline]

Set the group index assigned to a polygon.

Parameters:
pPolygonIndex  Index of the polygon.
pGroup  Group index assigned to the polygon.
Returns:
Group index assigned to the polygon. If the polygon index is out of bounds, do nothing.

Definition at line 152 of file kfbxmesh.h.

int GetPolygonVertex ( int  pPolygonIndex,
int  pPositionInPolygon  
) const [inline]

Get a polygon vertex (i.e.

an index to a control point).

Parameters:
pPolygonIndex  Index of polygon. The valid range for this parameter is 0 to KFbxMesh::GetPolygonCount().
pPositionInPolygon  Position of polygon vertex in indexed polygon. The valid range for this parameter is 0 to KFbxMesh::GetPolygonSize(pPolygonIndex).
Returns:
Return the polygon vertex indexed or -1 if the requested vertex does not exists.

Definition at line 165 of file kfbxmesh.h.

void GetPolygonVertexNormal ( int  pPolyIndex,
int  pVertexIndex,
KFbxVector4 pNormal  
) const

Get the normal associated with a polygon/vertex.

Parameters:
pPolyIndex  Index of the polygon.
pVertexIndex  Index of the vertex in the polygon space.
pNormal  The returned normal.
Remarks:
pNormal remain unchanged if the requested vertex does not exists.

int* GetPolygonVertices (  )  const

Get the array of polygon vertices (i.e.

index to control points). This array is a concatenation of the list of polygon vertices of all the polygons. Example: a mesh made of 2 triangles [1,2,3] and [2,3,4] results in [1,2,3,2,3,4]. The first polygon starts at position 0 and the second at position 3.

Returns:
The array of polygon vertices

int GetPolygonVertexCount (  )  const

Gets the number of polygon vertices in the mesh.

Returns:
The number of polygon vertices in the mesh.

int GetPolygonVertexIndex ( int  pPolygonIndex  )  const

Gets the start index into the array returned by GetPolygonVertices() for the given polygon.

Parameters:
pPolygonIndex  The polygon to query
Returns:
An index into the GetPolygonVertices() array

int RemovePolygon ( int  pPolygonIndex  ) 

Remove this polygon from the mesh.

Update layers accordingly.

Parameters:
pPolygonIndex  Index of the polygon.
Returns:
Polygon index. If the polygon index is out of bounds, return -1.

void InitTextureUV ( int  pCount,
KFbxLayerElement::ELayerElementType  pTypeIdentifier = KFbxLayerElement::eDIFFUSE_TEXTURES  
)

Init texture UV coordinates.

Parameters:
pCount  Number of texture UV elements.
pTypeIdentifier 
Remarks:
pCount must equal the number of control points of the Mesh if the UV mapping mode is KFbxLayerElement::eBY_CONTROL_POINT.

void AddTextureUV ( KFbxVector2  pUV,
KFbxLayerElement::ELayerElementType  pTypeIdentifier = KFbxLayerElement::eDIFFUSE_TEXTURES  
)

Add texture UV coordinates.

Appends a new element at the end of the array of texture UV coordinates.

Parameters:
pUV  Texture UV coordinates, ranging between 0 and 1.
pTypeIdentifier 
Remarks:
The final number of texture UV elements must equal the number of control points if the UV mapping mode is KFbxLayerElement::eBY_CONTROL_POINT.

int GetTextureUVCount ( KFbxLayerElement::ELayerElementType  pTypeIdentifier = KFbxLayerElement::eDIFFUSE_TEXTURES  ) 

Get the number of texture UV coordinates.

Parameters:
pTypeIdentifier  Type of the layer.

int GetUVLayerCount (  ) 

Get the number of layer containing at least one channel UVMap.

KArrayTemplate<KFbxLayerElement::ELayerElementType> GetAllChannelUV ( int  pLayer  ) 

Get an array of UV of the different UV set for a layer.

Parameters:
pLayer  Index of the layer.

void InitMaterialIndices ( KFbxLayerElement::EMappingMode  pMappingMode  ) 

Initialize material indices.

Parameters:
pMappingMode  The mapping mode. This function must be called after function KFbxGeometryBase::InitControlPoints(). The material indices refer to the position of a material in the KFbxLayerElementMaterial's direct array. See KFbxLayerElementMaterial for more details. Supported mapping types are eBY_CONTROL_POINT, eBY_POLYGON and eALL_SAME.
  • If mapping mode is eBY_CONTROL_POINT, there will be as many indices in the material index array as there are control points.
  • If mapping mode is eBY_POLYGON, there will be as many indices in the material index array as there are polygons in the mesh.
  • If mapping mode is eALL_SAME, there will be only one index in the material index array.
Remarks:
This function will set the Reference mode of the KFbxLayerElementMaterial on layer 0 to eINDEX_TO_DIRECT.

void InitTextureIndices ( KFbxLayerElement::EMappingMode  pMappingMode,
KFbxLayerElement::ELayerElementType  pTextureType  
)

Initialize texture indices.

Parameters:
pMappingMode  The mapping mode. The texture indices refer to the position of a texture in the KFbxLayerElementTexture's direct array. See KFbxLayerElementTexture for more details. Supported mapping modes are eBY_POLYGON and eALL_SAME.
  • If mapping mode is eBY_POLYGON, there will be as many indices in the texture index array as there are polygons in the mesh.
  • If mapping mode is eALL_SAME, there will be only one index in the texture index array.
pTextureType 
Remarks:
This function will set the Reference mode of the KFbxLayerElementTexture on layer 0 to eINDEX_TO_DIRECT.

void InitTextureUVIndices ( KFbxLayerElement::EMappingMode  pMappingMode,
KFbxLayerElement::ELayerElementType  pTypeIdentifier = KFbxLayerElement::eDIFFUSE_TEXTURES  
)

Initialize texture UV indices.

Parameters:
pMappingMode  The mapping mode. The texture UV indices refer to the index of an element in the KFbxLayerElementUV's direct array. See KFbxLayerElementUV for more details. Supported mapping types are eBY_CONTROL_POINT , eBY_POLYGON_VERTEX and eALL_SAME.
  • If mapping mode is eBY_CONTROL_POINT, there will be as many indices in the UV index array as there are control points. This will also set the Reference mode of the KFbxLayerElementUV on layer 0 to eDIRECT.
  • If mapping mode is eBY_POLYGON_VERTEX, there will be an index in the UV index array for each vertex, for each polygon it is part of. This will also set the Reference mode of the KFbxLayerElementUV on layer 0 to eINDEX_TO_DIRECT.
  • If mapping mode is eALL_SAME, there will be no index in the UV index array. This will also set the Reference mode of the KFbxLayerElementUV on layer 0 to eDIRECT.
pTypeIdentifier 

int GetTextureUVIndex ( int  pPolygonIndex,
int  pPositionInPolygon,
KFbxLayerElement::ELayerElementType  pTypeIdentifier = KFbxLayerElement::eDIFFUSE_TEXTURES  
)

Get a texture UV index associated with a polygon vertex (i.e.

an index to a control point).

Parameters:
pPolygonIndex  Index of polygon. The valid range for this parameter is 0 to KFbxMesh::GetPolygonCount().
pPositionInPolygon  Position of polygon vertex in indexed polygon. The valid range for this parameter is 0 to KFbxMesh::GetPolygonSize(pPolygonIndex).
pTypeIdentifier 
Returns:
Return a texture UV index.
Remarks:
This function only works if the texture UV mapping mode is set to eBY_POLYGON_VERTEX, otherwise it returns -1.

void SetTextureUVIndex ( int  pPolygonIndex,
int  pPositionInPolygon,
int  pIndex,
KFbxLayerElement::ELayerElementType  pTypeIdentifier  
)

Set a texture UV index associated with a polygon vertex (i.e.

an index to a control point).

Parameters:
pPolygonIndex  Index of polygon. The valid range for this parameter is 0 to KFbxMesh::GetPolygonCount().
pPositionInPolygon  Position of polygon vertex in indexed polygon. The valid range for this parameter is 0 to KFbxMesh::GetPolygonSize(pPolygonIndex).
pIndex  The index of the texture UV we want to assign to the polygon vertex.
pTypeIdentifier 
Remarks:
This function only works if the texture UV mapping type is set to eBY_POLYGON_VERTEX.

void Reset (  ) 

Reset the mesh to default values.

Frees and set to NULL all layers and clear the polygon and the control point array.

void ComputeVertexNormals ( bool  pCW = false  ) 

Compute the vertex normals on the mesh.

The normals are per vertex and are the average of all the polygon normals associated with each vertex.

Parameters:
pCW  True if the normals are calculated clockwise, false otherwise (counter-clockwise).

bool CheckIfVertexNormalsCCW (  ) 

Compares the normals calculated by doing cross-products between the polygon vertex and by the ones stored in the normal array.

Returns:
false if ALL of them are Clockwise. Returns true otherwise.

bool CheckSamePointTwice (  ) 

Verify if the mesh has polygons that are defined on the same point more than once.

Returns:
true if the mesh has that kind of polygon, false otherwise.

int RemoveBadPolygons (  ) 

Remove bad polygons from a mesh.

Degenerate polygons use a vertex more than once. Remove them from the mesh and from the layer element indices as needed.

Returns:
Number of polygons removed from the mesh, -1 if an error occurred.

void SplitPoints ( KFbxLayerElement::ELayerElementType  pTypeIdentifier = KFbxLayerElement::eDIFFUSE_TEXTURES  ) 

Split points.

Parameters:
pTypeIdentifier 
Remarks:
This method replaces the BuildSplitList and SplitPointsForHardEdge.

bool BuildMergeList ( KArrayTemplate< int > &  pMergeList,
ESplitObject  pObject,
bool  pExport = false  
)

Insert the new indexes of the object that have to be merged.

Parameters:
pMergeList  The list that will contain the indexes of the objects to merge.
pObject  The object of interest of the merge.
pExport  If set to true, include the duplicate indexes in the merge list.

void MergePointsForPolygonVerteNormals ( KArrayTemplate< int > &  pMergeList  ) 

Merge the points specified in the list.

Parameters:
pMergeList  list containing the information on the points that will be merge

void BuildMeshEdgeArray (  ) 

Automatically generate edge data for the mesh.

Clears all previously stored edge information

int GetMeshEdgeCount (  )  const

Query the number of edges defined on this mesh.

Returns:
The number of edges defined for this mesh

int GetMeshEdgeIndex ( int  pStartVertexIndex,
int  pEndVertexIndex,
bool &  pReversed  
)

Get the index for the edge between the given vertices.

Note that the result of this method is the same if pStartVertexIndex and pEndVertexIndex are swapped.

Parameters:
pStartVertexIndex  The starting point of the edge
pEndVertexIndex  The ending point of the edge
pReversed  flag will be set to true if the reverse edge is found, false otherwise
Returns:
-1 if no edge exists for the given pair of vertices

int GetMeshEdgeIndexForPolygon ( int  pPolygon,
int  pPositionInPolygon  
)

Get the index for the specific edge of pPolygon.

Parameters:
pPolygon  The polygen.
pPositionInPolygon  The specific edge number in the polygon.
Returns:
-1 if the specific edge does not exist.

void GetMeshEdgeVertices ( int  pEdgeIndex,
int &  pStartVertexIndex,
int &  pEndVertexIndex  
)

Get the vertices for the given edge.

Note that the values returned are indices into the control point array.

Parameters:
pEdgeIndex  The edge to query
pStartVertexIndex  The edge's starting point will be stored here
pEndVertexIndex  The edge's starting point will be stored here

void BeginGetMeshEdgeVertices (  ) 

Use this method before calling GetMeshEdgeVertices if making several calls to that method.

Once done calling that method, call EndGetMeshEdgeVertices. This will optimize access time. Do not modify the mesh inbetween calls to BeginGetMeshEdgeVertices and EndGetMeshEdgeVertices.

void EndGetMeshEdgeVertices (  ) 

Use this method after calling GetMeshEdgeVertices if making several calls to that method.

This will optimize access time. Do not modify the mesh inbetween calls to BeginGetMeshEdgeVertices and EndGetMeshEdgeVertices.

void SetMeshEdgeCount ( int  pEdgeCount  ) 

Presets the number edge data elements.

Parameters:
pEdgeCount  The number of edges to allocate

void SetMeshEdge ( int  pEdgeIndex,
int  pValue  
) [inline]

Sets element in edge array to specific value.

Parameters:
pEdgeIndex  The edge index
pValue  The edge data

Definition at line 503 of file kfbxmesh.h.

int AddMeshEdgeIndex ( int  pStartVertexIndex,
int  pEndVertexIndex,
bool  pCheckForDuplicates  
)

Add an edge with the given start/end points.

Note that the inserted edge may start at the given end point, and end at the given start point.

Parameters:
pStartVertexIndex  The starting point of the edge
pEndVertexIndex  The ending point of the edge.
pCheckForDuplicates  Set to true to check if the mesh already contains an edge with these two points. Can be set to false to speed up this method, when the incoming edges are known to be consistent.
Returns:
Edge index of the new edge, or -1 on failure (edge/reverse edge already exists, no face using these 2 points consecutively )

int SetMeshEdgeIndex ( int  pEdgeIndex,
int  pStartVertexIndex,
int  pEndVertexIndex,
bool  pCheckForDuplicates  
)

Set the index for the edge with the given start/end points.

Note that the edge may start at the given end point, and end at the given start point.

Parameters:
pEdgeIndex  The edge index of the edge.
pStartVertexIndex  The starting point of the edge
pEndVertexIndex  The ending point of the edge.
pCheckForDuplicates  Set to true to check if the mesh already contains an edge with these two points. Can be set to false to speed up this method, when the incoming edges are known to be consistent.
Returns:
Edge index of the edge, or -1 on failure (edge/reverse edge already exists, no face using these 2 points consecutively )

void BeginAddMeshEdgeIndex (  ) 

Call this before calling AddMeshEdgeIndex or SetMeshEdgeIndex to increase performance.

Once finished adding/setting edges EndAddMeshEdgeIndex should be called.

void EndAddMeshEdgeIndex (  ) 

After calling AddMeshEdgeIndex or SetMeshEdgeIndex, EndAddMeshEdgeIndex should be called.

int AddMeshEdgeIndexForPolygon ( int  pPolygonIndex,
int  pPositionInPolygon  
)

Adds an edge for the specified polygon, and edge number within the polygon see SetMeshEdgeIndex for notes the the parameters.

Parameters:
pPolygonIndex  The polygon
pPositionInPolygon  The edge within the polygon
Returns:
edge index or -1 if failed.

bool SetMeshEdgeIndex ( int  pEdgeIndex,
int  pPolygonIndex,
int  pPositionInPolygon  
)

Sets the specified edge to the specified polygon's edge.

Note that the position in polygon ranges from 0 to GetPolygonSize(pPolygonindex) - 1 and represents the edge from GetPolygonVertex(pPolygonIndex, pPositionInPolygon) to GetPolygonVertex( pPolygonIndex, pPositionInPolygon + 1 ) or from pPositionInPolygon to 0 if pPositionInPolygon == GetPolygonSize(pPolygonindex) - 1

Parameters:
pEdgeIndex  The edge
pPolygonIndex  The polygon
pPositionInPolygon  The specific edge number in the polygon
Returns:
true on success, false on failure. ( edge for the poly and position already exists )

void ComputeComponentMaps ( KFbxComponentMap pEdgeToPolyMap,
KFbxComponentMap pPolyToEdgeMap  
)

Computer component maps.

Parameters:
pEdgeToPolyMap 
pPolyToEdgeMap 

bool IsTriangleMesh (  )  const

Determines if the mesh is composed entirely of triangles.

Returns:
true if all polygons are triangles, false otherwise
KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh
KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh KFbxMesh